package com.mastercard.assets.web.struts.forms;

import com.mastercard.assets.jpa.TblAsset;
import com.mastercard.assets.jpa.TblPaquete;
import com.mastercard.assets.jpa.TblPaqueteRegional;
import com.mastercard.assets.util.dao.MasterCardDAO;
import com.mastercard.assets.web.util.to.UserLogin;
import java.util.List;
import javax.servlet.http.HttpServletRequest;


import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class AssetBorrarForm
	extends
		ActionForm
{
	private int cveAsset ;
	
	

	public int getCveAsset() {
		return cveAsset;
	}



	public void setCveAsset(int cveAsset) {
		this.cveAsset = cveAsset;
	}



	public ActionErrors validate( ActionMapping mapping , HttpServletRequest request )
	{
//		System.out.println( "Entra al validate" ) ;
//		
            HttpSession session = request.getSession( ) ;
            UserLogin user = ( UserLogin ) session.getAttribute( "UserLogin" ) ;
            
		ActionErrors errors = new ActionErrors( ) ;
                // APLICA PA ROL SPONSOSHIPS
                if( user.getActualRoleId( ) == 6 ) {
                    
                    TblAsset asset = MasterCardDAO.findAssetById( cveAsset ) ;
                    // BUSCA Y RECORRE LOS PAQUETES Y CUENTA LOS ASIGNADOS.
                    List< TblPaqueteRegional > packs = MasterCardDAO.getAllPackagesRegionalOfAsset( cveAsset , 1 ) ;
                    int cant = 0 ;
                    for( TblPaqueteRegional pk : packs ) {
                        
                        if( pk.getBandera( ) == 2 )
                            cant += 1 ;
                    }
                    // SI HAY PAQUETES EN LA CUENTA: NO PERMITE BORRAR EL ASSET
                    if( cant > 0 ) {
                        errors.add( "PaquetesDeAssetAsignados" ,
                                new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.packages.PaquetesAsignados",
                                        new Object[]{new Integer( cant ),  asset.getNombre( ) } ) ) ;
                    }
                    
                }
		
		// si no hay cve
		if( cveAsset < 1 )
			errors.add( "CveEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.login.CveEmpty" ) ) ;
		
                MasterCardDAO.closeEntityManager( ) ;
		return errors ;
	}
}
